0 gün Seviye 1 Avar Teknolojileri

Döngüler

Ders 5/6 · 2 dakika

Bir işin defalarca tekrarlanması için o kodun tekrar tekrar yazılması kodun okunurluğunu düşürür. Bununla birlikte, yapacağınız bir değişiklik için defalarca kez aynı değişikliği uygulamanız gerekir. Aşağıda 1’den 40’a kadar olan sayıları yazan bir kod verilmiştir.

print("1")
print("2")
print("3")
print("4")
print("5")
print("6")
print("7")
print("8")
print("9")
print("10")
print("11")
print("...") # 40'a kadar yazdığımı varsayın
print("40")

Bu sayıların arasına ”-” işareti eklemek istediğimizde kod aralarını seçip kod aralıklarına teker teker print("---") yazmamız gerekir.

Bunun yerine for kullanabiliriz. For, belirli bir sayıda aynı işlemin tekrarlanmasını sağlayan araçtır.

range(baslangic, bitis, adim) kullanarak hangi değerler arasında döngü çalıştıracağımızı seçebiliriz. For ayrıca listelerde de kullanılabilir.

# Listeyi anlatmadım, ona deyineceğiz.
liste = ("a", "b", "c")

for degisken in range(30):
    print(degisken) # 0'dan başlayarak 30'un 1 eksiğine kadar say
for degisken in range(1, 30):
    print(degisken) # 1'den başlayarak 30'un 1 eksiğine kadar say
for degisken in range(1, 30, 3):
    print(degisken) # 1'den başlayarak 30'un 1 eksiğine üçer üçer atlayarak say.
for degisken in range(1, 30+1, 3):
    # Direk 31 de yazabiliriz.
    print(degisken) # 1'den başlayarak 30'a kadar say.
for degisken in range(len(liste)):
    print(degisken) # 0'dan başlayarak lisedeki eleman sayısı kadar say (3-1)
for degisken in liste:
    print(degisken) #liste elemanlarını teker teker yaz

Yukarıdaki işlemi 80 satıra çıkarmadan, aşağıdaki şekilde yazabiliriz.

for degisken in range(1, 41):
    print(degisken)
    print("---")

Buradaki aynı işi print’de öğrendiğiniz şekilde de yapabiliyorsunuz.

for degisken in range(1, 41):
    print(degisken, end="\n---\n")

Basit seviyede kalarak sondaki tireleri silelim. degisken bir… değişken… olduğu için karşılaştırma işlemleri yapabiliriz.

for degisken in range(1, 41):
    print(degisken)
    if degisken != 40: print("---")

While

for kavramının belirli sayıda tekrarlar yaptığını biliyoruz. Fakat for, “için” demektir. Örneğin listedeki 30 sayı için, ya da listedeki 10 adet eş yazı için…

Bir döngüyü, belirli bir durum geçerliyken devam ettireceksek, burada while kullanırız. “Sürece” anlamına gelir. Bu şart karşılandığı sürece… gibi gibi.

While ve for döngüleri erkenden sonlanabilir. Bunu SIGINT göndererek (yani CTRL+C) ya da break; koduyla yapabiliriz. Örneğin 50’ye kadar sayıp 50’de duran bir kod yazalım.

devam = True
i = 0

while devam == True:
   i +=1
   print(i)
   if i > 49:
    break; 

#Çıktısı: 1...50

Önemli Detay

Break, kendisinden sonra gelen komutları çalıştırmayacaktır. Yani eğer bizim ekrana yazdırma işlemimiz döngüden sonra olsaydı, 50’yı yazmayacak ve 49’da duracaktı.

Bitince bitti yazan bir print eki de koyalım.

devam = True
i = 0

while devam == True:
   i +=1
   print(i)
   if i > 49:
    break; 
print("Bitti!")

1…50 Bitti!

Aynı işlemi devam değişkenini False yaparak da durdurabiliriz.

devam = True
i = 0

while devam == True:
   i +=1
   print(i)
   if i > 49:
    devam = False
print("Bitti!")

1…50 Bitti!

While, hatalı giriş sonrası programın kapanmasını engellemek adıyla başa sarmak için de kullanılabilir. Bunun için her daim çalışan bir döngüye ihtiyacımız var.

devam = True
i = 0

while True:
   if input()=="Selam":
    break
   else:
    print("Selam yazman lazım") # Hata almamak için bir işlem yapalım.

Dersi bitirdin mi?Bu dersi tamamladın.

İlerlemen bu tarayıcıda saklanır.